package interfaces;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import negocio.Categoria;
import negocio.Conta;
import negocio.Favorecido;
import negocio.Lancamento;

import com.example.money.R;

import android.app.Activity;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.Toast;
import databases.DsCategoria;
import databases.DsConta;
import databases.DsFavorecido;
import databases.DsLancamento;

public class LancamentoActivity extends Activity{
	DsConta dbConta;
	Spinner spinnerConta;
	ArrayAdapter<Conta> contaAdapter;
	ArrayList<Conta> contaArrayList;
	
	DsFavorecido dbFavorecido;
	Spinner spinnerFavorecido;
	ArrayAdapter<Favorecido> favorecidoAdapter;
	ArrayList<Favorecido> favorecidoArrayList;
	
	DsCategoria dbCategoria;
	Spinner spinnerCategoria;
	ArrayAdapter<Categoria> categoriaAdapter;
	ArrayList<Categoria> categoriaArrayList;
    
	RadioButton tipoLancamento;
	DsLancamento dbLancamento;
	EditText edtValor;
	EditText edtData;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_lancamento);
		montaSpinners();
		dbLancamento = new DsLancamento(this);
		addListenerOnButton();
	}
	public void addListenerOnButton(){
		Button btnSalva = (Button) findViewById(R.id.btn_ok_lancamento);
		btnSalva.setOnClickListener(new OnClickListener(){
			
			public void onClick(View v) {
				if(v.getId() == R.id.btn_ok_lancamento)
				{
					spinnerConta = (Spinner)findViewById(R.id.spnContas);
	 				Conta conta = (Conta)spinnerConta.getSelectedItem();
					spinnerFavorecido = (Spinner)findViewById(R.id.spnFavorecidos);
	 				Favorecido favorecido = (Favorecido)spinnerFavorecido.getSelectedItem();
					spinnerCategoria = (Spinner)findViewById(R.id.spnCategorias);
	 				Categoria categoria = (Categoria)spinnerCategoria.getSelectedItem();
	 				tipoLancamento = (RadioButton)findViewById(R.id.rdbReceita);
	 				
	 				Lancamento lanc = new Lancamento();
	 				lanc.setIdConta(conta.getId());
	 				lanc.setIdCategoria(categoria.getId());
	 				lanc.setIdFavorecido(favorecido.getId());
	 				if (tipoLancamento.isChecked()){
	 					lanc.setTipo(1);
	 				}else{
	 					lanc.setTipo(0);	 					
	 				}
	 				
	 				edtValor = (EditText)findViewById(R.id.edtValor);
	 				String valor = edtValor.getText().toString();
	 				lanc.setValor(Double.valueOf(valor));
	 				
	 				edtData = (EditText)findViewById(R.id.edtData);
	 				String data = edtData.getText().toString();
	 				SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
	 				try {
						lanc.setData((Date)format.parse(data));
					} catch (ParseException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}

	 				dbLancamento.open();
	 				dbLancamento.addLancamento(lanc);
	 				Toast.makeText(getApplicationContext(), R.string.lancamento_cadastrar_sucesso, Toast.LENGTH_LONG).show();
	 				finish();
	 				
//	 				if(nome.length() == 0)
//	 				{
//	 					Toast.makeText(getApplicationContext(), R.string.nome_obrigatorio, Toast.LENGTH_LONG).show();
//	 				}
//	 				else
//	 				{
//	 					if(nome.equals(curNome))
//	 					{
//	 						finish();
//	 					}
//	 					else if(dbDataSource.hasName(nome))
//						{
//							Toast.makeText(getApplicationContext(), R.string.nome_usado, Toast.LENGTH_LONG).show();
//						}
//						else
//						{
//							if(extras == null)
//							{
//								if(dbDataSource.add(nome) == null)
//								{
//									Toast.makeText(getApplicationContext(), R.string.categoria_salvar_erro, Toast.LENGTH_LONG).show();
//								}
//								else
//								{
//									Toast.makeText(getApplicationContext(), R.string.categoria_salvar_sucesso, Toast.LENGTH_LONG).show();
//									campoLista.setText("");
//									
//									finish();
//								}
//							}
//							else
//							{
//								if(dbDataSource.rename(extras.getLong("id"), nome))
//								{
//									Toast.makeText(getApplicationContext(), R.string.categoria_renomear_sucesso, Toast.LENGTH_LONG).show();
//									campoLista.setText("");
//									
//									finish();							
//								}
//								else
//								{
//									Toast.makeText(getApplicationContext(), R.string.categoria_renomear_erro, Toast.LENGTH_LONG).show();
//								}
//							}
//						}
//	 				}
				}
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.lancamento, menu);
		return true;
	}

	private void montaSpinners(){
		dbCategoria = new DsCategoria(this);
		dbCategoria.open();
		categoriaArrayList = dbCategoria.getAll();
		categoriaAdapter = new ArrayAdapter<Categoria>(this, android.R.layout.simple_spinner_item, categoriaArrayList);
		spinnerCategoria = (Spinner)findViewById(R.id.spnCategorias);
		spinnerCategoria.setAdapter(categoriaAdapter);
		
		dbConta = new DsConta(this);
		dbConta.open();
		contaArrayList = dbConta.getAll();
		contaAdapter = new ArrayAdapter<Conta>(this, android.R.layout.simple_spinner_item, contaArrayList);
		spinnerConta = (Spinner)findViewById(R.id.spnContas);
		spinnerConta.setAdapter(contaAdapter);
		
		dbFavorecido = new DsFavorecido(this);
		dbFavorecido.open();
		favorecidoArrayList = dbFavorecido.getAll();
		favorecidoAdapter = new ArrayAdapter<Favorecido>(this, android.R.layout.simple_spinner_item, favorecidoArrayList);
		spinnerFavorecido = (Spinner)findViewById(R.id.spnFavorecidos);
		spinnerFavorecido.setAdapter(favorecidoAdapter);
	}

}
